package com.urea.system.domain;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.urea.common.annotation.Excel;
import com.urea.common.core.domain.BaseEntity;

/**
 * 交易记录对象 t_pay_info
 * 
 * @author liuzd
 * @date 2023-08-01
 */
@TableName("t_pay_info")
@Data
@ToString
public class PayInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 业务类型;0充值，1加注，2退款，3提现 */
    @Excel(name = "业务类型;0充值，1加注，2退款，3提现")
    @ApiModelProperty( "业务类型;0充值，1加注，2退款，3提现")
    private Integer payMethod;

    /** 支付订单号 */
    @Excel(name = "支付订单号")
    @ApiModelProperty( "支付订单号")
    private String orderNo;

    /** 外部订单号 */
    @Excel(name = "外部订单号")
    @ApiModelProperty( "外部订单号")
    private String outPayNo;

    /** 支付人 */
    @Excel(name = "支付人")
    @ApiModelProperty( "支付人")
    private Long refUid;

    /** openid */
    @Excel(name = "openid")
    @ApiModelProperty( "openid")
    private String openid;

    /** 业务id */
    @Excel(name = "业务id")
    @ApiModelProperty( "业务id")
    private Long bizId;

    /** 支付金额 */
    @Excel(name = "支付金额")
    @ApiModelProperty( "支付金额")
    private BigDecimal payAmount;

    /** 支付状态;0待支付，1已支付，2支付失败 */
    @Excel(name = "支付状态;0待支付，1已支付，2支付失败")
    @ApiModelProperty( "支付状态;0待支付，1已支付，2支付失败")
    private Integer payStatus;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty( "支付时间")
    private LocalDateTime payTime;

    /** 返回信息 */
    @Excel(name = "返回信息")
    @ApiModelProperty( "返回信息")
    private String returnData;

    /** 额外信息 加注数量 */
    @Excel(name = "实际加注升数")
    @ApiModelProperty( "实际加注升数")
    private String extraInfo;
    /**可加总量*/
    @Excel(name = "可加总量")
    @ApiModelProperty( "可加总量")
    private String fillNo;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty( "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    @ApiModelProperty( "代理商名称")
    @TableField(exist = false)
    private String agentName;


}
